跳到主要内容

字符集

字符集,描述可见到的图形,在存储和传输时使用的编码称之为字符集!

指的是:

图形与编码之间的对应关系!

字 =\> 11100101 11100001 00010100

![](264514052CA8EEA3BA18681C10F85AE5.png)

数据存储的编码
-------

数据是存储在服务器端的!究竟是以哪种编码保存的,怎么决定?

数据是最终要映射(保存)到字段的层面上!因此决定数据的编码,也是最终由字段来决定!

确定数据的存储编码是由以下的方案完成的:

1, 先看字段的编码!如果存在则确定完毕!

2, 如果字段没有设置编码,查看表的编码,如果有,则确定数据编码!

3, 如果表没有编码,查看库的编码,如果有,则确定数据编码!

4, 如果库也没有编码,则有服务器程序确定!

![](309E4758FA9443E27F6A4BB9E9CD9814.png)

典型的编码:gbk,utf8!

客户端操作,查询的编码
-----------

在客户端与服务器端交互时,存在两个重要的编码:

1, 客户端发送数据的编码

2, 客户端接收到服务器数据编码!

可以通过 show variables like ‘character\_set\_%’展示以character\_set开头变量,其中就有上面的两个值:

![](F0DE2762DA72541BB4EE5428D0275D52.png)

在命令行客户端下:

该客户端,只能是gbk编码!

![](FB4F5B38C80F4CF57D6B1A262CD357EF.png)

使用 set 变量名 = 变量值的形式更改变量值!

![](563BB3EDCAB0840207776E0437D4BA5E.png)

set names gbk,就是一个快捷操作,将上面两个配置同时更改成目标编码!

set names gbk|utf8 取决于,客户端所能接受的编码!

整体流程:

![](A872FA8132DA898A18D817776E802044.png)

set names gbk|utf8。